home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / deskbar-applet / handlers / yahoo.pyc (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2007-04-29  |  3.2 KB  |  72 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. from deskbar.Utils import strip_html, get_proxy
  5. from gettext import gettext as _
  6. from deskbar.defs import VERSION
  7. import urllib
  8. import cgi
  9. import gnomevfs
  10. import deskbar.Handler as deskbar
  11. import deskbar.Match as deskbar
  12. import deskbar
  13. import deskbar.Utils as deskbar
  14. import xml.dom.minidom as xml
  15. YAHOO_API_KEY = 'deskbar-applet'
  16. YAHOO_URL = 'http://api.search.yahoo.com/WebSearchService/V1/webSearch?%s'
  17. MAX_QUERIES = 10
  18. QUERY_DELAY = 1
  19. HANDLERS = {
  20.     'YahooHandler': {
  21.         'name': _('Yahoo! Search'),
  22.         'description': _('Search Yahoo! as you type'),
  23.         'version': VERSION } }
  24.  
  25. class YahooMatch(deskbar.Match.Match):
  26.     
  27.     def __init__(self, handler, url = None, **args):
  28.         deskbar.Match.Match.__init__(self, handler, **args)
  29.         self.url = url
  30.  
  31.     
  32.     def get_verb(self):
  33.         return '%(name)s'
  34.  
  35.     
  36.     def action(self, text = None):
  37.         deskbar.Utils.url_show(self.url)
  38.  
  39.     
  40.     def get_category(self):
  41.         return 'web'
  42.  
  43.     
  44.     def get_hash(self, text = None):
  45.         return self.url
  46.  
  47.  
  48.  
  49. class YahooHandler(deskbar.Handler.AsyncHandler):
  50.     
  51.     def __init__(self):
  52.         deskbar.Handler.AsyncHandler.__init__(self, 'yahoo.png')
  53.         self.server = None
  54.  
  55.     
  56.     def query(self, qstring):
  57.         self.check_query_changed(timeout = QUERY_DELAY)
  58.         print 'Query yahoo for:', qstring
  59.         stream = urllib.urlopen(YAHOO_URL % urllib.urlencode({
  60.             'appid': YAHOO_API_KEY,
  61.             'query': qstring,
  62.             'results': 15 }), proxies = get_proxy())
  63.         dom = xml.dom.minidom.parse(stream)
  64.         print 'Got yahoo answer for:', qstring
  65.         self.check_query_changed()
  66.         matches = [ YahooMatch(self, name = cgi.escape(strip_html(r.getElementsByTagName('Title')[0].firstChild.data.encode('utf8'))), url = r.getElementsByTagName('ClickUrl')[0].firstChild.data.encode('utf8')) for r in dom.getElementsByTagName('Result') ]
  67.         self.check_query_changed()
  68.         print 'Returning yahoo answer for:', qstring
  69.         return matches
  70.  
  71.  
  72.